home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / b / b.lha / B / src / bint / b2exp.h < prev    next >
C/C++ Source or Header  |  1988-11-24  |  2KB  |  68 lines

  1. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  2.  
  3. /*
  4.   $Header: b2exp.h,v 1.4 85/08/22 16:42:25 timo Exp $
  5. */
  6.  
  7. /* General definitions for parsing expressions */
  8.  
  9. typedef struct { bool parsed, prop, trim;
  10.          intlet state, level, field;
  11.          value comp;
  12.         } expadm;
  13.  
  14. typedef struct { bool prop, trim;
  15.          intlet level, field;
  16.          parsetree node;
  17.         } unpadm;
  18.  
  19. #define Parsed(adm)    ((adm)->parsed)
  20. #define Prop(adm)       ((adm)->prop)
  21. #define Trim(adm)    ((adm)->trim)
  22. #define State(adm)    ((adm)->state)
  23. #define Level(adm)    ((adm)->level)
  24. #define N_fld(adm)    ((adm)->field)
  25. #define Unp_comp(adm)    ((adm)->comp)
  26. #define Node(adm)    ((adm)->node)
  27.  
  28. /* ********************************************************************    */
  29. /* Levels:                                */
  30. /*                                    */
  31. #define L_bottom    0
  32. #define L_term        1 /* plus, minus, join */
  33. #define L_factor    2 /* times, over */
  34. #define L_power        3 /* power */
  35. #define L_number    4 /* number  */
  36. #define L_expr        5 /* tag, repeat_text, center, (left|right)_adjust */
  37.  
  38. #define Prio \
  39.     MESS(1900, "cannot determine priorities; use ( and ) to resolve")
  40.  
  41. /* ******************************************************************** */
  42. /* States:                                */
  43. /*                                    */
  44. #define S_t    1
  45. #define S_tt    2
  46. #define S_else    3
  47.  
  48. /* ******************************************************************** */
  49.  
  50. bool b_about();
  51. bool b_numtor();
  52. bool b_denomtor();
  53. bool b_plus();
  54. bool b_minus();
  55. bool b_number();
  56. bool b_behead();
  57. bool b_curtail();
  58. #ifdef NOT_USED
  59. bool b_times();
  60. bool b_over();
  61. bool b_power();
  62. bool b_join();
  63. bool b_reptext();
  64. bool b_center();
  65. bool b_leftadj();
  66. bool b_rightadj();
  67. #endif
  68.